package com.gnerv.battle.boot.module.base.repository.mapper;

import com.gnerv.battle.boot.common.base.annotation.tenant.TenantExclude;
import com.gnerv.battle.boot.module.base.model.entity.RoleDataPermission;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

/**
 * @author Gnerv LiGen
 */
@Mapper
public interface TenantMapper {

    @TenantExclude
    Set<String> listRoleUkId();

    @TenantExclude
    Set<String> listAccountUkId();

    @TenantExclude
    Set<String> listRoleUkIdByAccountUkId(@Param(value = "accountUkId") String accountUkId);

    @TenantExclude
    List<RoleDataPermission> listByRoleUkIdSet(@Param(value = "roleUkIdSet") Set<String> roleUkIdSet);

    @TenantExclude
    Set<String> listAccountUkIdByRoleUkIdSetAndOrgUkIdSet(@Param(value = "roleUkIdSet") Set<String> roleUkIdSet,
                                                          @Param(value = "orgUkIdSet") Set<String> orgUkIdSet);

    @TenantExclude
    Set<String> listUsernameByRoleUkIdSetAndOrgUkIdSet(@Param(value = "roleUkIdSet") Set<String> roleUkIdSet,
                                                       @Param(value = "orgUkIdSet") Set<String> orgUkIdSet);

}
